Not applicable.
Not applicable.
1. Field of the Invention
The present invention generally relates to video processing systems. More particularly, the present invention relates to filtering pixel data in a, video processing system. More particularly still, the invention relates to filter architecture for a digital video processing system.
2. BACKGROUND OF THE INVENTION
The consumer electronics industry has experienced a dramatic explosion in product development over the last 20 years. This explosion has been fueled by consumer demand coupled with significant advances in semiconductor technology that have lead to lower cost semiconductor devices incorporating significantly more functionality than previously possible. For example, a hand-held calculator from 20 years ago provided the ability to perform rudimentary mathematical operations. Today, a hand-held device can provide much of the functionality of a desktop computer system.
The visual display of information to the user is of particular importance to the consumer electronics industry. The most notable examples of visual displays include televisions and personal computers. Other types of consumer electronics, including stereo receivers and hand-held computers, also include visual displays. Visual displays typically comprise a grid of evenly spaced xe2x80x9cpixels.xe2x80x9d FIG. 1, for example, shows a portion of a pixel grid 20 with a plurality of pixel lines 22. Each line includes multiple pixels denoted by the symbol xe2x80x98Xxe2x80x99. A typical television screen format includes 480 lines of pixels with each line comprising 720 pixels (i.e., 720xc3x97480). The size and spacing of the pixel lines in FIG. 1 have been exaggerated for clarity.
Each pixel in a line is represented by one or more data values. For example, each pixel can be represented in a xe2x80x9cRGBxe2x80x9d format which includes red, green, and blue color components. Alternatively, each pixel can be represented in a xe2x80x9cYUVxe2x80x9d or xe2x80x9cYCrCbxe2x80x9d format. In either the YUV or YCrCb formats, the xe2x80x9cYxe2x80x9d value represents luminance (xe2x80x9clumaxe2x80x9d) which determines the brightness of the pixel. The U and V values represent chrominance (xe2x80x9cchromaxe2x80x9d) components which determine color and are calculated as the difference between the luminance components and the red and blue color values; that is, U=Yxe2x88x92R and V=Yxe2x88x92B. The Cr and Cb values also represent chrominance and are scaled versions of the U and V chrominance values.
Video systems often represent images digitally. That is, each pixel comprising the image is represented by a digital YCrCb value, or a value in accordance with another format. To facilitate the transmission and storage of moving pictures, which generally involve voluminous amounts of pixel data, various encoding and compression techniques are used to process the data. One such technique is the Moving Pictures Experts Group (MPEG) standard commonly implemented in digital video disk (DVD) drives and other types of video equipment.
It is often desirable to filter the digital pixel values which represent a moving image. For example, common interchange format (xe2x80x9cCIFxe2x80x9d) images are formatted as 352xc3x97240 (i.e, 352 columns and 240 lines). To display a CIF image on a 720xc3x97480 television displays requires the conversion of the 352xc3x97240 CIF pixel format to the 720xc3x97480 television format. Part of the conversion involves xe2x80x9cupsamplingxe2x80x9d (also referred to as interpolating 352 pixels in each line to 720 pixels and 240 lines to 480 lines). Filtering pixels across a line is called xe2x80x9chorizontal filteringxe2x80x9d and thus a horizontal filter that converts a line of pixels into more pixels is referred to as a horizontal interpolation filter. It may also be desirable to expand an image vertically. Such a process is performed by a xe2x80x9cvertical interpolation filterxe2x80x9d which filters pixel values in a vertical column of pixels.
Video data must be provided to the display device at a fixed rate which typically is 30 frames of video per second for television. A frame refers to the set of all pixels on the screen (720xc3x97480) at each instance in time. A display rate of 30 frames per second is fast enough to appear to the human eye as a continuous image, and not a series of images captured at discrete points in time. All of the filtering and other processing that is to occur on a single frame therefore must be performed in less than one-thirtieth of a second.
The ability to filter digital video images has fueled a demand for additional types of filtering. For example, it has become desirable to reduce the size of an image. This process is referred to as xe2x80x9cdecimation.xe2x80x9d Additionally, it is desirable to increase the quality of video images. As the requirements for video filters increase, it is imperative to develop high quality video filters that can operate more efficiently and be produced at a lower cost. Such filters will provide high quality video images decimated or interpolated from an initial image at the desired display rate, but do so in an efficient manner so as to minimize system cost.
The deficiencies noted above are solved in large part by a video filter unit implemented as a three-stage filter comprising a vertical filter, a horizontal decimation filter which reduces the horizontal dimension of an image, and a horizontal interpolation filter which expands the horizontal dimension of an image. The three stages of the filter unit preferably are connected serially with the vertical filter comprising the input first stage, the horizontal decimation filter comprising the second stage and the horizontal interpolation filter comprising the third stage. With this filter archtiecture, the input video data to be filtered is provided to the vertical filter which provides its output to the horizontal decimation filter. The vertical filter can be configured to operate either as a decimation filter or an interpolation filter. After horizontal decimation, which can be disabled if desired (i.e., no horizontal decimation), the video data is then horizontally interpolated. The horizontal interpolation filter stage can also be disabled if desired.
The vertical filter is implemented in the preferred embodiment as a four-tap filter and thus calculates weighted averages of four video values (e.g. luminance values) at a time. The horizontal decimation filter preferably is implemented as a two-tap filter and thus averages two video values at a time. Lastly, the horizontal interpolation filter comprises an eight-tap filter and, accordingly, calculates a weighted average of eight video values. By placing the eight-tap horizontal interpolation filter as the last stage in the video unit, the horizontal interpolation filter can provide output video data at the display rate of the video system in which the video filter unit operates. If the horizontal interpolation filter was included in an earlier stage of the filter, the filter would have to operate at a higher rate to produce output values at the required display rate. By permitting the high tap count horizontal interpolation filter to operate at the slowest rate possible, that filter can be implemented with a lower power and lower cost design.